//
//  LBHomeTableViewController.swift
//  LBNewWeiBo
//
//  Created by bin on 15/10/26.
//  Copyright © 2015年 bin. All rights reserved.
//

import UIKit
import SVProgressHUD
import AFNetworking
class LBHomeTableViewController: LBBaseTableViewController {

    
    //MARK: - 属性
    /// 微博模型数组
    var statuses: [LBStatus]? {
        didSet {
            tableView.reloadData()
        }
    }
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        if !LBUserAccout.userLogin() {
            return
        }

        // 加载导航按钮
        setupNavigationBar()
        // 加载微博cell
        setupTableView()
        
        /// 加载模型数据
        // 没有网络
        LBStatus.loadStatus { (statuses, error) -> () in
            if error != nil {
               SVProgressHUD.showErrorWithStatus("加载失败，网络不给力", maskType: SVProgressHUDMaskType.Black)
                return
            }
            
            // 没有数据
            if statuses == nil && statuses?.count == 0 {
                SVProgressHUD.showErrorWithStatus("没有加载到任何的微博数据", maskType: SVProgressHUDMaskType.Black)
                return
            }
            
            /// 同行成功。加载数据
            self.statuses = statuses
            
            print("statuses:\(statuses)")
            
        }
        
      
    }
//MARK: - 设置table视图
    private func setupTableView() {
        // tableView注册了cell
        tableView.registerClass(LBStatusCell.self, forCellReuseIdentifier: "cell")
        
        // 设置预估行高
        tableView.estimatedRowHeight = 300
        
        // 去除cell的分割线
        tableView.separatorStyle = UITableViewCellSeparatorStyle.None
        
        // 根据约束来自动设置cell的高度
        tableView.rowHeight = UITableViewAutomaticDimension
        
    }
    
    
//MARK: - 设置导航工具按钮
    private func setupNavigationBar() {
//        加载
        navigationItem.leftBarButtonItem = UIBarButtonItem.init(imgName: "navigationbar_friendsearch")
        navigationItem.rightBarButtonItem = UIBarButtonItem.init(imgName: "navigationbar_pop")
        // 设置导航中心主题
        let name = LBUserAccout.loadAccount()?.name ?? "无名"
        
        // 创建自定义按钮
        let titleBarButton = LBHomeTitleButton()
        
        // 设置文字与图片
        titleBarButton.setImage(UIImage(named: "navigationbar_arrow_down"), forState: UIControlState.Normal) // 图片
        titleBarButton.setTitle(name, forState: UIControlState.Normal) // 标题
        titleBarButton.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal) // 颜色
        titleBarButton.sizeToFit() // 自动填充尺寸
        // 添加按钮的点击事件
        titleBarButton.addTarget(self, action: "HomeBarButtonClick:", forControlEvents: UIControlEvents.TouchUpInside)
        
        // 添加到导航标题控件
        navigationItem.titleView = titleBarButton
    }
    
    
    //MARK: - 按钮的点击事件
    /// 导航标题按钮点击事件
    // OC 可以访问 private
    @objc private func HomeBarButtonClick(button: UIButton) {
    
        // 按钮的选中状态进行取反
        button.selected = !button.selected
        
        // 定义可变的transfrom
        var transform : CGAffineTransform?
        
        if button.selected {
            // 选中：旋转180-0.1
            transform = CGAffineTransformMakeRotation(CGFloat(M_PI-0.01))
            
        }else {
            // 没有选中
            transform = CGAffineTransformIdentity // 复原
        }
        
        UIView.animateWithDuration(0.25) { () -> Void in
           button.imageView?.transform = transform!
        }
        
    }

    // MARK: - Tableview 数据源方法
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return statuses?.count ?? 0
    }
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell") as! LBStatusCell
        
        let status = statuses? [indexPath.row]
        cell.status = status
        
        return cell
    }


}
